// package com.liqin.nothing.controller.rabbitmq;
//
// import com.liqin.nothing.config.rabbitmq.DelayConfig;
// import lombok.RequiredArgsConstructor;
// import lombok.SneakyThrows;
// import lombok.extern.slf4j.Slf4j;
// import org.springframework.amqp.core.Message;
// import org.springframework.amqp.core.MessageBuilder;
// import org.springframework.amqp.rabbit.core.RabbitTemplate;
// import org.springframework.web.bind.annotation.GetMapping;
// import org.springframework.web.bind.annotation.RestController;
//
// import java.nio.charset.StandardCharsets;
// import java.time.LocalDateTime;
// import java.time.format.DateTimeFormatter;
// import java.util.HashMap;
// import java.util.Map;
// import java.util.UUID;
//
// /**
//  * @author gonghl
//  */
// @RestController
// @RequiredArgsConstructor
// @Slf4j
// public class SendMessageController {
//
//     private final RabbitTemplate rabbitTemplate;
//
//     @GetMapping("/sendDirectMessage")
//     public String sendDirectMessage() {
//         String messageId = String.valueOf(UUID.randomUUID());
//         String messageData = "test message, hello!";
//         String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
//         Map<String, Object> map = new HashMap<>();
//         map.put("messageId", messageId);
//         map.put("messageData", messageData);
//         map.put("createTime", createTime);
//         //将消息携带绑定键值：TestDirectRouting 发送到交换机TestDirectExchange
//         rabbitTemplate.convertAndSend("TestDirectExchange", "TestDirectRouting", map);
//         return "ok";
//     }
//
//     @GetMapping("/sendTopicMessage1")
//     public String sendTopicMessage1() {
//         String messageId = String.valueOf(UUID.randomUUID());
//         String messageData = "message: M A N ";
//         String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
//         Map<String, Object> manMap = new HashMap<>();
//         manMap.put("messageId", messageId);
//         manMap.put("messageData", messageData);
//         manMap.put("createTime", createTime);
//         rabbitTemplate.convertAndSend("topicExchange", "topic.man", manMap);
//         return "ok";
//     }
//
//     @GetMapping("/sendTopicMessage2")
//     public String sendTopicMessage2() {
//         String messageId = String.valueOf(UUID.randomUUID());
//         String messageData = "message: woman is all ";
//         String createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
//         Map<String, Object> womanMap = new HashMap<>();
//         womanMap.put("messageId", messageId);
//         womanMap.put("messageData", messageData);
//         womanMap.put("createTime", createTime);
//         rabbitTemplate.convertAndSend("topicExchange", "topic.woman", womanMap);
//         return "ok";
//     }
//
//     @GetMapping("/delayMessage1")
//     @SneakyThrows
//     public String delayMessage1() {
//         log.info("发送消息5秒成功--{}", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
//         Message msg = MessageBuilder.withBody(("发送消息5秒收到").getBytes(StandardCharsets.UTF_8)).setHeader("x-delay", 5000).build();
//         rabbitTemplate.convertAndSend(DelayConfig.EXCHANGE_NAME, DelayConfig.QUEUE_NAME, msg);
//         return "ok";
//     }
//
//     @GetMapping("/delayMessage2")
//     @SneakyThrows
//     public String delayMessage2() {
//         log.info("发送消息10秒成功--{}", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
//         Message msg = MessageBuilder.withBody(("发送消息10秒收到").getBytes(StandardCharsets.UTF_8)).setHeader("x-delay", 10000).build();
//         rabbitTemplate.convertAndSend(DelayConfig.EXCHANGE_NAME, DelayConfig.QUEUE_NAME, msg);
//         return "ok";
//     }
//
// }